package classics;

import java.util.*;

public class keyPoint {
    //不熟悉的数据结构
    public static void main(String[] args) {
        //堆的创建,默认是小根堆，根节点最小
        PriorityQueue<Integer> queue = new PriorityQueue<>(Arrays.asList(1,3,2,0));
        queue.peek();


        //大根堆创建
        PriorityQueue<Integer> queue2 = new PriorityQueue<>((o1,o2) -> {
            return o2-o1;
        });
        //大根堆创建
        PriorityQueue<Integer> queue3 = new PriorityQueue<>(new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                return o2-o1;
            }
        });
        //大根堆创建
        PriorityQueue<Integer> queue4 = new PriorityQueue<>((o1,o2) -> o2-o1);

        //双端队列
        Deque<Integer> deque = new LinkedList<>();
        deque.addFirst(1);
        deque.addLast(1);
        deque.pollFirst();
        deque.pollLast();
        deque.peekFirst();

        //把map里的key集合输入到list中去
        Map<Character,Integer> map = new HashMap<>();
        List<Character> list = new ArrayList<>(map.keySet());

        //自定义排序的方法
        list.sort((a, b) -> map.get(b) - map.get(a));
        list.sort((o1,o2)->{
            return map.get(o2)-map.get(o1);
        });

        map.containsKey(1);

        //set的值
        Set<Integer> set = new HashSet<>();
        set.contains(1);
        set.remove(1);

        //数组排序
        int[] num = {1,2,3,4};
        // Arrays.sort(num,(a,b)-> a - b); 不可以输入基本类型,包括compare也不可以
        Arrays.sort(num);



    }
}
